var HistorialEstadoPaqueteTrabajo_Controller =
{
    InitGrid:
    function HistorialEstadoPaqueteTrabajo_Controller_InitGrid()
    {
        var grid =
        {
            Target: "containerHistorialEstados",
            TableId: "gridHistorialEstadoPaqueteTrabajo",
            PrimaryKey: "Id",
            Fields:
            [
                { Header: "Estado", DataField: "EstadoPaqueteTrabajo", Width:"180px", DataFieldEdit: "EstadoPaqueteTrabajo", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium },
                { Header: "Usuario Registro", DataField: "UsuarioRegistro", Width:"180px", DataFieldEdit: "UsuarioRegistro", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium },
                { Header: "Fecha Registro", DataField: "FechaRegistro_Format", Width:"140px", OrderBy:"FechaRegistro", DataFieldEdit: "FechaRegistro_Format", StyleCss: CssWeb.FormatCenter, ControlEdit: GridJSON.DatePickerJquery, MaxLength : 10, ControlCss: CssWeb.TextBoxShort },
                { Header: "Comentario", DataField: "Comentario_Corto", OrderBy:"Comentario", StyleCss: CssWeb.FormatText }
            ],
            RecordSearch: { EstadoPaqueteTrabajo : "", UsuarioRegistro : "", FechaRegistro_Format : ""},
            ShowPaging: DatosControles.GridJSON_ShowPagging,
            ChooseShowPaging: DatosControles.GridJSON_ChoosePagging,
            TotalRecords: 0,
            PageIndex: 1,
            OrderBy: "FechaRegistro Desc",
            FunctionLoadGrid: HistorialEstadoPaqueteTrabajo_Controller.ListarGridJSON,
            FunctionExportToExcel: HistorialEstadoPaqueteTrabajo_Controller.ExportarExcelGrid,
            //FunctionAddRecord: ComentarioPaqueteTrabajo_Controller.AdicionarRegistro,
            //FunctionSaveRecord: ComentarioPaqueteTrabajo_Controller.GrabarRegistro,
            ButtonsActionRecord:
            [
                { styleCss: CssWeb.GridJSON_IconDetail, toolTip: DatosControles.GridJSON_ToolTipDetalle, functionAction: HistorialEstadoPaqueteTrabajo_Controller.DetalleRegistro }
                //{ styleCss: CssWeb.GridJSON_IconDelete, toolTip: DatosControles.GridJSON_ToolTipEliminar, functionAction: ComentarioPaqueteTrabajo_Controller.EliminarRegistro }
            ]
        }

        HistorialEstadoPaqueteTrabajo_Controller.Grid = grid;
    },

    Grid: {},

    ListarGridJSON:
    function HistorialEstadoPaqueteTrabajo_Controller_ListarGridJSON(registroBusqueda, orderBy, cantidadMostrar, paginaActual) 
    {
        HistorialEstadoPaqueteTrabajo_Controller.Grid.RecordSearch = registroBusqueda;
        HistorialEstadoPaqueteTrabajo_Controller.Grid.OrderBy = orderBy;
        HistorialEstadoPaqueteTrabajo_Controller.Grid.ChooseShowPaging = cantidadMostrar;
        HistorialEstadoPaqueteTrabajo_Controller.Grid.PageIndex = paginaActual;

        HistorialEstadoPaqueteTrabajo_Controller.ListarGridPaging();
    },

    ListarGridPaging:
    function HistorialEstadoPaqueteTrabajo_Controller_ListarGridPaging()
    {
        Global_UI.BlockUI(true);

        HistorialEstadoPaqueteTrabajo_Controller.Grid.RecordSearch.PaqueteTrabajoId = $("#hiddenPaqueteTrabajoId").val();

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/ListarHistorialEstadoPaqueteTrabajos",
            JSON.stringify
            ({
                registroBusqueda: HistorialEstadoPaqueteTrabajo_Controller.Grid.RecordSearch,
                paginaActual: HistorialEstadoPaqueteTrabajo_Controller.Grid.PageIndex,
                cantidadMostrar: HistorialEstadoPaqueteTrabajo_Controller.Grid.ChooseShowPaging,
                orderBy: HistorialEstadoPaqueteTrabajo_Controller.Grid.OrderBy
            }),
            HistorialEstadoPaqueteTrabajo_Controller.ListarGridPaging_CallBack
        )
    },

    ListarGridPaging_CallBack:
    function HistorialEstadoPaqueteTrabajo_Controller_ListarGridPaging_CallBack(response)
    {
        var view = response.d

        HistorialEstadoPaqueteTrabajo_Controller.Grid.TotalRecords = view.TotalRegistros;

        GridJSON.DataBind(HistorialEstadoPaqueteTrabajo_Controller.Grid, view.HistorialEstadoPaqueteTrabajos);

        Global_UI.BlockUI(false);
    },

    ExportarExcelGrid:
    function HistorialEstadoPaqueteTrabajo_Controller_ExportarExcelGrid(registroBusqueda)
    {
        Global_UI.BlockUI(true);

        registroBusqueda.PaqueteTrabajoId = $("#hiddenPaqueteTrabajoId").val();

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/ExportarExcelHistorialEstadoPaqueteTrabajos",
            JSON.stringify
            ({
                registroBusqueda: registroBusqueda,
                gridFields: HistorialEstadoPaqueteTrabajo_Controller.Grid.Fields
            }),
            HistorialEstadoPaqueteTrabajo_Controller.ExportarExcelGrid_CallBack
        )
    },

    ExportarExcelGrid_CallBack:
    function HistorialEstadoPaqueteTrabajo_Controller_ExportarExcelGrid_CallBack(response)
    {
        var archivo = response.d;

        Global_UI.MostrarExportacionExcel(archivo);

        Global_UI.BlockUI(false);
    },

    EditarRegistro:
    function HistorialEstadoPaqueteTrabajo_Controller_EditarRegistro(id)
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/CargarHistorialEstadoPaqueteTrabajo",
            JSON.stringify
            ({
                id: id
            }),
            HistorialEstadoPaqueteTrabajo_Controller.EditarRegistro_CallBack
        )
    },

    EditarRegistro_CallBack:
    function HistorialEstadoPaqueteTrabajo_Controller_EditarRegistro_CallBack(response)
    {
        var view = response.d;

        GridJSON.EditRecordGrid(HistorialEstadoPaqueteTrabajo_Controller.Grid, view.HistorialEstadoPaqueteTrabajo);

        Global_UI.BlockUI(false);
    },

    DetalleRegistro:
    function HistorialEstadoPaqueteTrabajo_Controller_DetalleRegistro(id)
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/CargarHistorialEstadoPaqueteTrabajo",
            JSON.stringify
            ({
                id: id
            }),
            HistorialEstadoPaqueteTrabajo_Controller.DetalleRegistro_CallBack
        )
    },

    DetalleRegistro_CallBack:
    function HistorialEstadoPaqueteTrabajo_Controller_DetalleRegistro_CallBack(response)
    {
        var view = response.d;

        Global_UI.JqueryModalFormOpen("dialogComentariosPaqueteTrabajo");

        $("#hiddenComentarioId").val("0");
        $("#txtComentario").attr("disabled",true);
        $("#txtComentario").val(view.HistorialEstadoPaqueteTrabajo.Comentario);
        $("#btnGrabarComentario").hide();        

        Global_UI.BlockUI(false);
    },

    GrabarRegistro:
    function HistorialEstadoPaqueteTrabajo_Controller_GrabarRegistro(registro)
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "RegistrarTarea.aspx/GrabarHistorialEstadoPaqueteTrabajo",
            JSON.stringify
            ({
                registro: registro
            }),
            HistorialEstadoPaqueteTrabajo_Controller.GrabarRegistro_CallBack
        )
    },

    GrabarRegistro_CallBack:
    function HistorialEstadoPaqueteTrabajo_Controller_GrabarRegistro_CallBack(response)
    {
        var view = response.d;

        GridJSON.ReconstructRecordGrid(HistorialEstadoPaqueteTrabajo_Controller.Grid, view.HistorialEstadoPaqueteTrabajo, view.NuevoRegistro);

        Global_UI.BlockUI(false);
    },

    EliminarRegistro:
    function HistorialEstadoPaqueteTrabajo_Controller_EliminarRegistro(id)
    {
        Global_UI.Confirm
        (
            MensajesUsuario.EliminarRegistro,
            MensajesUsuario.TituloMensajeSistema,
            function()
            {
                Global_UI.BlockUI(true);

                Global_UI.AjaxPOST
                (
                    "RegistrarTarea.aspx/EliminarHistorialEstadoPaqueteTrabajo",
                    JSON.stringify
                    ({
                        id: id
                    }),
                    HistorialEstadoPaqueteTrabajo_Controller.EliminarRegistro_CallBack
                );
            }
        );
    },

    EliminarRegistro_CallBack:
    function HistorialEstadoPaqueteTrabajo_Controller_EliminarRegistro_CallBack(response)
    {
        var id = response.d;

        GridJSON.DeleteRecordGrid(HistorialEstadoPaqueteTrabajo_Controller.Grid,id);

        Global_UI.BlockUI(false);
    }
};

var ConfigurarHistorialEstadoPaqueteTrabajo_ASPX =
{
    Load:
    function ConfigurarHistorialEstadoPaqueteTrabajo_ASPX_Load()
    {
        Global_UI.BlockUI(true);

        $("#btnConsultar").click(function () { GridJSON.SearchRecordsGridJSON(HistorialEstadoPaqueteTrabajo_Controller.Grid); });
        $("#btnNuevo").click(function () { GridJSON.AddRecordGridJSON(HistorialEstadoPaqueteTrabajo_Controller.Grid); });

        HistorialEstadoPaqueteTrabajo_Controller.InitGrid();
        HistorialEstadoPaqueteTrabajo_Controller.ListarGridPaging();
    }
};
